1. Field of the Invention
The present invention relates generally to an improved data processing system, and in particular, to a computer implemented method for improving operations in a multiprocessor or multi-core data processing environment. Still more particularly, the present invention relates to a computer-implemented method for fast remote communication and computation between processors or processor cores in a multiprocessor or multi-core data processing environment.
2. Description of the Related Art
Data processing systems include processors for performing computations. A processor can include multiple processing cores. A core is a processor or a unit of a processor circuitry that is capable of operating as a separate processing unit. Some data processing systems can include multiple processors. A data processing environment can include data processing systems including single processors, multi-core processors, and multiprocessor configurations.
For the purposes of this disclosure, a data processing environment including multiple processors or processors with multiple cores is collectively referred to as a multiprocessor environment.
A thread is a stream of executable code within an application that can be executed on a processor. An application executing in a data processing system spawns threads that are executed by a processor in the data processing system. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process associated with the application. Multiple threads can exist within the same process and share resources such as memory.
A processor in a multiprocessor environment operates on data that can be referenced using an address space associated with a process executing on the processor. Such an address space is called a context. Thus, a processor performs computations within a context.
An effective address is a memory address as provided in an instruction that a processor executes. Generally, an effective address resolves to an address space of a memory accessible to the processor. A global address is an address that resolves to a global address space. A global address space is associated with a memory accessible to all processors in the data processing environment (hence global to the data processing environment). An effective address can be transformed into a global address under suitable configuration of memory in a multiprocessor data processing environment.